Eeective Flow Analysis for Avoiding Run-time Checks

نویسنده

  • Suresh Jagannathan
چکیده

This paper describes a general purpose program analysis that computes global control-ow and data-ow information for higher-order, call-by-value programs. This information can be used to drive global program optimizations such as inlining and run-time check elimination, as well as optimizations like constant folding and loop invariant code motion that are typically based on special-purpose local analyses. The analysis employs a novel approximation technique called poly-morphic splitting that uses let-expressions as syntactic clues to gain precision. Polymorphic splitting borrows ideas from Hindley-Milner poly-morphic type inference systems to create an analog to polymorphism for ow analysis. Experimental results derived from an implementation of the analysis for Scheme indicate that the analysis is extremely precise and has reasonable cost. In particular, it eliminates signiicantly more run-time checks than simple ow analyses (i.e. 0CFA) or analyses based on type inference.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Effective Flow Analysis for Avoiding Run-Time Checks

This paper describes a general purpose program analysis that computes global control-ow and data-ow information for higher-order, call-by-value programs. This information can be used to drive global program optimizations such as inlining and run-time check elimination, as well as optimizations like constant folding and loop invariant code motion that are typically based on special-purpose local...

متن کامل

Chaos for a Fast, Secure, and Predictable Future

Violating a program’s semantics for fun and profit is a time honored hacker tradition. Compilers defend against such fiends by inserting run-time checks to enforce semantic safety properties. Safe language compilers insert type checks for down-casts, information flow compilers [11] add run-time checks to prevent information leakage, and tools like SAFECode [8], WIT [1], and DFI [6] insert run-t...

متن کامل

Flow-Sensitive Sub-Zero Control-Flow Analysis in Linear-Log Time

Traditional control-flow analysis (CFA) for higher-order languages is too expensive to be used as an every-day analysis in an otherwise fast compiler that is often called upon to compile large programs. It is even more expensive when flow sensitivity is added to handle optimizations like type recovery. In particular, the fastest known algorithms for 0CFA, the least expensive of the popular kCFA...

متن کامل

A Comparison of Compiler Tiling Algorithms

Linear algebra codes contain data locality which can be exploited by tiling multiple loop nests. Several approaches to tiling have been suggested for avoiding connict misses in low associativity caches. We propose a new technique based on intra-variable padding and compare its performance with existing techniques. Results show padding improves performance of matrix multiply by over 100% in some...

متن کامل

Hybrid Information Flow Analysis for Programs with Arrays

Information flow analysis checks whether certain pieces of (confidential) data may affect the results of computations in unwanted ways and thus leak information. Dynamic information flow analysis adds instrumentation code to the target software to track flows at run time and raise alarms if a flow policy is violated; hybrid analyses combine this with preliminary static analysis. Using a subset ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995